filter3(cons2(X, Y), 0, M) -> cons2(0, filter3(Y, M, M))
filter3(cons2(X, Y), s1(N), M) -> cons2(X, filter3(Y, N, M))
sieve1(cons2(0, Y)) -> cons2(0, sieve1(Y))
sieve1(cons2(s1(N), Y)) -> cons2(s1(N), sieve1(filter3(Y, N, N)))
nats1(N) -> cons2(N, nats1(s1(N)))
zprimes -> sieve1(nats1(s1(s1(0))))
↳ QTRS
↳ DependencyPairsProof
filter3(cons2(X, Y), 0, M) -> cons2(0, filter3(Y, M, M))
filter3(cons2(X, Y), s1(N), M) -> cons2(X, filter3(Y, N, M))
sieve1(cons2(0, Y)) -> cons2(0, sieve1(Y))
sieve1(cons2(s1(N), Y)) -> cons2(s1(N), sieve1(filter3(Y, N, N)))
nats1(N) -> cons2(N, nats1(s1(N)))
zprimes -> sieve1(nats1(s1(s1(0))))
SIEVE1(cons2(s1(N), Y)) -> SIEVE1(filter3(Y, N, N))
ZPRIMES -> SIEVE1(nats1(s1(s1(0))))
SIEVE1(cons2(s1(N), Y)) -> FILTER3(Y, N, N)
FILTER3(cons2(X, Y), s1(N), M) -> FILTER3(Y, N, M)
FILTER3(cons2(X, Y), 0, M) -> FILTER3(Y, M, M)
SIEVE1(cons2(0, Y)) -> SIEVE1(Y)
ZPRIMES -> NATS1(s1(s1(0)))
NATS1(N) -> NATS1(s1(N))
filter3(cons2(X, Y), 0, M) -> cons2(0, filter3(Y, M, M))
filter3(cons2(X, Y), s1(N), M) -> cons2(X, filter3(Y, N, M))
sieve1(cons2(0, Y)) -> cons2(0, sieve1(Y))
sieve1(cons2(s1(N), Y)) -> cons2(s1(N), sieve1(filter3(Y, N, N)))
nats1(N) -> cons2(N, nats1(s1(N)))
zprimes -> sieve1(nats1(s1(s1(0))))
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
SIEVE1(cons2(s1(N), Y)) -> SIEVE1(filter3(Y, N, N))
ZPRIMES -> SIEVE1(nats1(s1(s1(0))))
SIEVE1(cons2(s1(N), Y)) -> FILTER3(Y, N, N)
FILTER3(cons2(X, Y), s1(N), M) -> FILTER3(Y, N, M)
FILTER3(cons2(X, Y), 0, M) -> FILTER3(Y, M, M)
SIEVE1(cons2(0, Y)) -> SIEVE1(Y)
ZPRIMES -> NATS1(s1(s1(0)))
NATS1(N) -> NATS1(s1(N))
filter3(cons2(X, Y), 0, M) -> cons2(0, filter3(Y, M, M))
filter3(cons2(X, Y), s1(N), M) -> cons2(X, filter3(Y, N, M))
sieve1(cons2(0, Y)) -> cons2(0, sieve1(Y))
sieve1(cons2(s1(N), Y)) -> cons2(s1(N), sieve1(filter3(Y, N, N)))
nats1(N) -> cons2(N, nats1(s1(N)))
zprimes -> sieve1(nats1(s1(s1(0))))
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
NATS1(N) -> NATS1(s1(N))
filter3(cons2(X, Y), 0, M) -> cons2(0, filter3(Y, M, M))
filter3(cons2(X, Y), s1(N), M) -> cons2(X, filter3(Y, N, M))
sieve1(cons2(0, Y)) -> cons2(0, sieve1(Y))
sieve1(cons2(s1(N), Y)) -> cons2(s1(N), sieve1(filter3(Y, N, N)))
nats1(N) -> cons2(N, nats1(s1(N)))
zprimes -> sieve1(nats1(s1(s1(0))))
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDPOrderProof
↳ QDP
FILTER3(cons2(X, Y), 0, M) -> FILTER3(Y, M, M)
FILTER3(cons2(X, Y), s1(N), M) -> FILTER3(Y, N, M)
filter3(cons2(X, Y), 0, M) -> cons2(0, filter3(Y, M, M))
filter3(cons2(X, Y), s1(N), M) -> cons2(X, filter3(Y, N, M))
sieve1(cons2(0, Y)) -> cons2(0, sieve1(Y))
sieve1(cons2(s1(N), Y)) -> cons2(s1(N), sieve1(filter3(Y, N, N)))
nats1(N) -> cons2(N, nats1(s1(N)))
zprimes -> sieve1(nats1(s1(s1(0))))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
FILTER3(cons2(X, Y), 0, M) -> FILTER3(Y, M, M)
FILTER3(cons2(X, Y), s1(N), M) -> FILTER3(Y, N, M)
POL( FILTER3(x1, ..., x3) ) = max{0, x1 - 2}
POL( cons2(x1, x2) ) = x2 + 3
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ PisEmptyProof
↳ QDP
filter3(cons2(X, Y), 0, M) -> cons2(0, filter3(Y, M, M))
filter3(cons2(X, Y), s1(N), M) -> cons2(X, filter3(Y, N, M))
sieve1(cons2(0, Y)) -> cons2(0, sieve1(Y))
sieve1(cons2(s1(N), Y)) -> cons2(s1(N), sieve1(filter3(Y, N, N)))
nats1(N) -> cons2(N, nats1(s1(N)))
zprimes -> sieve1(nats1(s1(s1(0))))
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDPOrderProof
SIEVE1(cons2(s1(N), Y)) -> SIEVE1(filter3(Y, N, N))
SIEVE1(cons2(0, Y)) -> SIEVE1(Y)
filter3(cons2(X, Y), 0, M) -> cons2(0, filter3(Y, M, M))
filter3(cons2(X, Y), s1(N), M) -> cons2(X, filter3(Y, N, M))
sieve1(cons2(0, Y)) -> cons2(0, sieve1(Y))
sieve1(cons2(s1(N), Y)) -> cons2(s1(N), sieve1(filter3(Y, N, N)))
nats1(N) -> cons2(N, nats1(s1(N)))
zprimes -> sieve1(nats1(s1(s1(0))))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
SIEVE1(cons2(s1(N), Y)) -> SIEVE1(filter3(Y, N, N))
Used ordering: Polynomial Order [17,21] with Interpretation:
SIEVE1(cons2(0, Y)) -> SIEVE1(Y)
POL( SIEVE1(x1) ) = max{0, x1 - 3}
POL( cons2(x1, x2) ) = x1 + x2 + 3
POL( s1(x1) ) = 1
POL( filter3(x1, ..., x3) ) = x1
POL( 0 ) = 0
filter3(cons2(X, Y), s1(N), M) -> cons2(X, filter3(Y, N, M))
filter3(cons2(X, Y), 0, M) -> cons2(0, filter3(Y, M, M))
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
SIEVE1(cons2(0, Y)) -> SIEVE1(Y)
filter3(cons2(X, Y), 0, M) -> cons2(0, filter3(Y, M, M))
filter3(cons2(X, Y), s1(N), M) -> cons2(X, filter3(Y, N, M))
sieve1(cons2(0, Y)) -> cons2(0, sieve1(Y))
sieve1(cons2(s1(N), Y)) -> cons2(s1(N), sieve1(filter3(Y, N, N)))
nats1(N) -> cons2(N, nats1(s1(N)))
zprimes -> sieve1(nats1(s1(s1(0))))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
SIEVE1(cons2(0, Y)) -> SIEVE1(Y)
POL( SIEVE1(x1) ) = max{0, x1 - 3}
POL( cons2(x1, x2) ) = x1 + x2 + 1
POL( 0 ) = 3
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ PisEmptyProof
filter3(cons2(X, Y), 0, M) -> cons2(0, filter3(Y, M, M))
filter3(cons2(X, Y), s1(N), M) -> cons2(X, filter3(Y, N, M))
sieve1(cons2(0, Y)) -> cons2(0, sieve1(Y))
sieve1(cons2(s1(N), Y)) -> cons2(s1(N), sieve1(filter3(Y, N, N)))
nats1(N) -> cons2(N, nats1(s1(N)))
zprimes -> sieve1(nats1(s1(s1(0))))